package com.d3works.apps.bpm.service;

import com.d3works.apps.bpm.db.WkfModel;
import com.d3works.exception.D3worksException;
import com.d3works.meta.db.MetaFile;
import com.google.inject.persist.Transactional;
import java.util.List;
import java.util.Map;

public interface WkfModelService {

  @Transactional
  public WkfModel createNewVersion(WkfModel wkfModel);

  @Transactional
  public WkfModel start(WkfModel wkfModel);

  @Transactional
  public WkfModel terminate(WkfModel wkfModel);

  @Transactional
  public WkfModel backToDraft(WkfModel wkfModel);

  public List<Long> findVersions(WkfModel wkfModel);

  public void importStandardBPM();

  public String importWkfModels(
      MetaFile metaFile, boolean isTranslate, String sourceLanguage, String targetLanguage)
      throws D3worksException;

  public List<Map<String, Object>> getProcessPerStatus(WkfModel wkfModel);

  public List<Map<String, Object>> getProcessPerUser(WkfModel wkfModel);
}
